package com.moji.entity;

import java.math.BigDecimal;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 订单表
 * </p>
 *
 * @author ccl
 * @since 2024-07-27
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="MjOrder对象", description="订单表")
public class MjOrder{

    private static final long serialVersionUID=1L;

    @ExcelIgnore
    @ApiModelProperty(value = "id")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ExcelProperty(value = "订单编码")
    @ApiModelProperty(value = "订单编码")
    private String orderCode;

    @ExcelProperty(value = "订单名称")
    @ApiModelProperty(value = "订单名称")
    private String orderName;

    @ExcelIgnore
    @ApiModelProperty(value = "用户编码")
    private String userCode;

    @ExcelProperty(value = "用户")
    @ApiModelProperty(value = "用户名称")
    private String userName;

    @ExcelIgnore
    @ApiModelProperty(value = "账户 0-个人账户 1-企业账户")
    private String accountType;

    @ExcelIgnore
    @ApiModelProperty(value = "企业编码")
    private String companyCode;

    @ExcelIgnore
    @ApiModelProperty(value = "企业名称")
    private String companyName;

    @ExcelIgnore
    @ApiModelProperty(value = "产品编码")
    private String productCode;

    @ExcelIgnore
    @ApiModelProperty(value = "产品名称")
    private String productName;

    @ExcelIgnore
    @ApiModelProperty(value = "产品类型  1 免费版  2 包年版  3 个性定制版")
    private String productType;

    @ExcelProperty(value = "手机号")
    @ApiModelProperty(value = "手机号")
    private String mobile;

    @ExcelIgnore
    @ApiModelProperty(value = "订单类型 0-数据产品 1-其它产品")
    private String orderType;

    @ExcelIgnore
    @ApiModelProperty(value = "订单详情")
    private String orderDetail;

    @ExcelIgnore
    @ApiModelProperty(value = "优惠卷")
    private String coupon;

    @ExcelIgnore
    @ApiModelProperty(value = "原始订单金额")
    private BigDecimal originalAmount;

    @ExcelProperty(value = "订单金额")
    @ApiModelProperty(value = "订单金额")
    private BigDecimal orderAmount;

    @ExcelIgnore
    @ApiModelProperty(value = "修改金额")
    private BigDecimal editOrderAmount;

    @ExcelIgnore
    @ApiModelProperty(value = "最新金额")
    private BigDecimal newOrderAmount;

    @ExcelIgnore
    @ApiModelProperty(value = "实付金额")
    private BigDecimal payAmount;

    @ExcelIgnore
    @ApiModelProperty(value = "下单时间")
    private Date orderTime;

    @TableField(exist = false)
    @ExcelProperty(value = "支付时间")
    @ApiModelProperty(value = "支付时间")
    private String orderTimeStr;

    @ExcelIgnore
    @ApiModelProperty(value = "支付时间")
    private Date payTime;

    @TableField(exist = false)
    @ExcelProperty(value = "支付时间")
    @ApiModelProperty(value = "支付时间")
    private String payTimeStr;

    @ExcelProperty(value = "支付方式")
    @ApiModelProperty(value = "支付方式 0-支付宝 1-微信 2-对公支付")
    private String payType;

    @ExcelIgnore
    @ApiModelProperty(value = "订单状态0 - 待支付 1 - 已完成 2-已取消 3-待退款 4—已退款 5—审核拒绝（改价）  6-订单超时失效 7-退款失败")
    private Integer orderStatus;

    @ExcelIgnore
    @ApiModelProperty(value = "审核状态20 - 待审核 21 - 已审核 22-已驳回 ")
    private Integer auditStatus;

    @ExcelIgnore
    @ApiModelProperty(value = "使用状态0-待使用 1-使用中 2-已关闭 3-已失效 ")
    private Integer useStatus;

    @ExcelIgnore
    @ApiModelProperty(value = "发票状态0 - 未开 1 - 开票中 2-已开票")
    private Integer billStatus;

    @ExcelIgnore
    @ApiModelProperty(value = "备注")
    private String remark;

    @ExcelIgnore
    @ApiModelProperty(value = "操作人id")
    private String updateId;

    @ExcelIgnore
    @ApiModelProperty(value = "创建人id")
    private String createId;

    @ExcelIgnore
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ExcelIgnore
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    @ExcelIgnore
    @ApiModelProperty(value = "备用字段1")
    private Integer spareInt1;

    @ExcelIgnore
    @ApiModelProperty(value = "备用字段2")
    private Integer spareInt2;

    @ExcelIgnore
    @ApiModelProperty(value = "备用字段1")
    private String spareString1;

    @ExcelIgnore
    @ApiModelProperty(value = "备用字段2")
    private String spareString2;

    @ExcelIgnore
    @ApiModelProperty(value = "退款申请理由ID")
    private Long applicationReasonId;

    @ExcelIgnore
    @ApiModelProperty(value = "退款申请理由")
    private String applicationReason;

    @ExcelIgnore
    @ApiModelProperty(value = "退款申请理由备注")
    private String applicationRemark;

    @TableField(exist = false)
    @ExcelProperty(value = "发票状态")
    @ApiModelProperty(value = "发票状态0 - 未开 1 - 已开 ")
    private String billStatusStr;

    @TableField(exist = false)
    @ExcelProperty(value = "订单状态")
    @ApiModelProperty(value = "0 - 待支付 1 - 已完成 2-已取消 3-待退款 4—已退款 5—审核拒绝  6-订单超时失效 ")
    private String orderStatusStr;

}
